package com.dzl.goods.dao;

import com.dzl.base.mapper.BaseMapper;
import com.dzl.goods.pojo.WelfareGoodsClassify;
import com.dzl.goods.pojo.query.WelfareGoodsClassifyQuery;
import com.dzl.goods.pojo.vo.WelfareGoodsClassifyVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 商品分类表(WelfareGoodsClassify)表数据库访问层
 * @author ChenLong
 * @since 2021-05-18 16:40:25
 */
public interface WelfareGoodsClassifyMapper extends BaseMapper<WelfareGoodsClassify> {

    /**
     * 查询所有分类
     * @author ChenLong
     * @since 2021-05-21 09:41:47
     * @param welfareGoodsClassify 商品分类表(WelfareGoodsClassify)实体类
     * @return java.util.List<com.dzl.goods.pojo.vo.WelfareGoodsClassifyVo>
     **/
    List<WelfareGoodsClassifyVo> queryAll(WelfareGoodsClassify welfareGoodsClassify);

    /**
     * 根据三级分类ID列表获取三级分类
     * @author ChenLong
     * @date 2021-07-31 15:26:29
     * @param
     * @return java.util.List
     **/
    List<WelfareGoodsClassifyVo> getGoodsClassifyByThirdIdList(List<Integer> list);

    /**
     * 查询所有显示的分类
     * @date 2021/7/9 15:29
     * @author caobucao
     * @param welfareGoodsClassify 商品分类表(WelfareGoodsClassify)实体类
     * @return java.util.List<com.dzl.goods.pojo.vo.WelfareGoodsClassifyVo>
     */
    List<WelfareGoodsClassifyVo> queryAllIsShow(WelfareGoodsClassify welfareGoodsClassify);

    /**
     * 服务端获取右侧分页列表
     * @date 2021/6/1 14:07
     * @author caobucao
     * @param query  查询条件
     * @return java.util.List<com.dzl.goods.pojo.vo.WelfareGoodsClassifyVo>
     */
    List<WelfareGoodsClassifyVo> selectGoodsClassifyPage(WelfareGoodsClassifyQuery query);

    /**
     * 查询分类关联商品数
     * @date 2021/6/1 16:54
     * @author caobucao
     * @param id 分类id
     * @return java.lang.Integer
     */
    Integer selectCountGoodsById(@Param("id") Integer id, @Param("level") Integer level);

    /**
     * 获取所有子分类
     * @date 2021/6/7 16:37
     * @author caobucao
     * @param parentId 父级id
     * @return java.util.List<com.dzl.goods.pojo.WelfareGoodsClassify>
     */
    List<WelfareGoodsClassify> selectAllChildren(@Param("parentId") Integer parentId);

    /**
     * 查询选中parentIds的父级分类
     * @date 2021/6/8 16:21
     * @author caobucao
     * @param parentIds 父ID
     * @return java.util.List<com.dzl.goods.pojo.vo.WelfareGoodsClassifyVo>
     */
    List<WelfareGoodsClassifyVo> selectParentByIds(@Param("parentIds") String parentIds);
    /**
     * 
     * @Description:查询商品分类-中台项目
     * @param parentId 上级分类id
     * @return List<Map<String,Object>>
     * @author: liufan
     * @time:2021年6月19日 下午4:12:02
     */
    List<Map<String, Object>> getCategoryListByMiddleground(@Param("parentId")Integer parentId);

}

